Everything about Remote Procedure Call totally explained
Remote procedure call (
RPC) is a technology that allows a
computer program to cause a
subroutine or procedure to execute in another
address space (commonly on another computer on a shared network) without the programmer explicitly coding the details for this remote interaction.
That is, the programmer would write essentially the same code whether the subroutine is local to the executing program, or remote. When the software in question is written using
object-oriented principles, RPC may be referred to as
remote invocation or
remote method invocation.
Note that there are many different technologies commonly used to accomplish this which are often incompatible, such as
ONC RPC and
DCE/RPC.
History and origins
The idea of RPC goes back at least as far as 1976, when it was described in RFC 707. One of the first business uses of RPC was by
Xerox under the name "Courier" in 1981. The first popular implementation of RPC on
Unix was Sun's RPC (now called
ONC RPC), used as the basis for Sun's
NFS. ONC RPC is still widely used today on several platforms.
Another early Unix implementation was
Apollo Computer's Network Computing System (NCS). NCS later was used as the foundation of
DCE/RPC in the
OSF's
Distributed Computing Environment (DCE). A decade later
Microsoft adopted DCE/RPC as the basis of their Microsoft RPC (
MSRPC) mechanism, and implemented
DCOM atop it. Around the same time (mid-90's),
Xerox PARC's
ILU, and the Object Management Group's
CORBA, offered another RPC paradigm based on distributed objects with an inheritance mechanism.
Message passing
RPC is an obvious and popular
paradigm for implementing the
client-server model of
distributed computing. An RPC is initiated by the
client sending a request message to a known remote
server in order to execute a specified procedure using supplied parameters. A response is returned to the client where the application continues along with its process. There are many variations and subtleties in various implementation, resulting in a variety of different (incompatible) RPC protocols. While the server is processing the call, the client is blocked.
An important difference between remote procedure calls and local calls is that remote calls can fail because of unpredictable network problems. Also, callers generally must deal with such failures without knowing whether the remote procedure was actually invoked.
Idempotent procedures (those which have no additional effects if called more than once) are easily handled, but enough difficulties remain that code which calls remote procedures is often confined to carefully written low-level subsystem.
Standard contact mechanisms
In order to allow servers to be accessed by differing clients, a number of standardized RPC systems have been created. Most of these use an
interface description language (IDL) to allow various platforms to call the RPC.
The IDL files can then be used to generate code to interface between the client and server. The most common tool used for this is
RPCGEN.
Other RPC analogues
RPC analogues found elsewhere:
- Java's Java Remote Method Invocation (Java RMI) API provides similar functionality to standard UNIX RPC methods.
- XML-RPC is an RPC protocol which uses XML to encode its calls and HTTP as a transport mechanism.
- Microsoft .NET Remoting offers RPC facilities for distributed systems implemented on the Windows platform.
- RPyC implements RPC mechanisms in Python, with support for asynchronous calls.
- Facebook's Thrift protocol and framework.
Web services RPC
Further Information
Get more info on 'Remote Procedure Call'.
|
External Link Exchanges
Do you know how hard it is to get a link from a large encyclopaedia? Well we're different and will prove it. To get a link from us just add the following HTML to your site on a relevant page:
<a href="http://remote_procedure_call.totallyexplained.com">Remote procedure call Totally Explained</a>
Then simply click through this link from your web page. Our crawlers will verify your link, extract the title of your web page and instantly add a link back to it. If you like you can remove the words Totally Explained and embed the link in article text.
As long as your link remains in place, we'll keep our link to you right here. Please play fair - our crawlers are watching. Your site must be closely related to this one's topic. Any kind of spamming, dubious practises or removing the link will result in your link from us being dropped and, potentially, your whole site being banned. |